Image processing systems typically include an input device such as a scanner and a computer system that is equipped with document applications for storing and editing scanned electronic documents and an output device such as a printing system for rendering documents. The computer system is operated by a user to edit or to view scanned “softcopy” digital images on a monitor of the computer system. The user can subsequently generate “hardcopy” reproductions of the softcopy images by instructing the computer system to provide the processed electronic image to a selected printing device. Advances in printing technology together with advances in computer system technology are helping image processing systems become more pervasive in desk-top publishing and business applications. Ink jet, thermal-transfer, and xerographic color are examples of printing technologies that are making moderate resolution affordable.
Electronic images or “softcopy” images processed by desk-top publishing applications consist of two dimensional arrays of picture elements (pixels) or image signals. Historically small computer memories require the use of intermediate disk buffers to rotate an electronic image of reasonable size. However, with the availability of larger computer memories, desk-top publishing applications can store entire electronic images in real memory. Even with large real memory allocations, there is not always sufficient memory to store both an original image and a rotated image. In some systems for example, available computer memory is large enough to contain one electronic image but not large enough to contain both an original image and a rotated image. In such instances rotating an electronic image in place, that is, within its own buffer and without the use of significant intermediate memory or auxiliary memory is desirable. To rotate an electronic image in place requires that sequences of replacement operations are performed to an electronic image that is stored in an image buffer. Each replacement operation of a sequence must be performed so that each replacement operation does not erase pixels in the image buffer not already transferred.
Digital copiers are another type of image processing devices that scan an image, store a digital representation of the image in memory, and print the digital representation of the image. In order to print the digitized images at a rate similar to rates produced by conventional analog copiers that never store a digital representation of the image but use optical components such as mirrors and lenses to generate an image on a photoconductive drum or belt, a very large amount of data must be moved at a high rate of speed. The requirement to quickly move such a large amount of data has pushed the capabilities of current data processing and storage devices to their limits.
The use of image tiles to rotate an image can reduce memory consumption. However, to scale up the performance of an image rotation by increasing the size of the tiles can adversely affect on-chip memory resources. Therefore, it may be desirable to have memory-efficient systems and methods of rotating image tiles. In particular, it may be desirable to have systems and methods of rotating line segments of image tiles at a high bandwidth without adversely affecting memory consumption.